package com.maliu.utils
{
	import flash.utils.ByteArray;
	/**
	 * 数组工具
	 * @author maliu
	 */
	public class ArrayUtil
	{
		/**
		 * 深复制一个数组
		 * @param _sourceArray
		 * @return Array
		 */
		public static function CopyArray(_sourceArray:Array):Array
		{
			var t_by:ByteArray = new ByteArray();
			t_by.writeObject(_sourceArray);
			t_by.position = 0;
			var t_result:Array = t_by.readObject() as Array;
			return t_result;
		}
		/**
		 * 将数组随机排序
		 * @param _sourceArray 需要随机排序的数组
		 * @param _copy 设为true，则复制数组副本后排序
		 * @return Array 排序后的数组
		 */
		public static function RandomSort(_sourceArray:Array, _copy:Boolean = false):Array
		{
			var t_arr:Array;
			t_arr = ((_copy == true)? ArrayUtil.CopyArray(_sourceArray):_sourceArray);
			t_arr.sort(randomSort);
			function randomSort(a:*, b:*):int
			{
				return Math.random() < 0.5 ? 1:-1;
			}
			return t_arr;
		}
	}
}
